<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 数据类型有两种
        // 基本数据类型：number  string  boolean  null  undefined
        // 引用数据类型  object


        // 数据类型判断
        // typeof  可以判断基本数据类型，不能判断引用数据类型(返回object类型)
        // instanceof  可以判断引用数据类型，可以判断字面量创建的基本数据类型
        // constructor 可以判断基本数据类型，也可以判断引用数据类型，如果把构造函数的原型指向了array的原型，那么也是不能判断的
        // Object.protoptye.toString.call() 完美的判断方法
        // juqury.type  如果是undefined或者null就返回undefined或者null

        let arr = [1, 2, 3]
        let num = 1
        let obj = {
            a: 1
        }
        console.log(typeof(arr)); //判断引用数据类型 object
        console.log(typeof(num)); //判断基本数据类型 返回对应的类型
        console.log(obj instanceof Object); //true
        console.log(obj instanceof Array); //false
        console.log(obj.constructor === Object); //true
        console.log(obj.constructor === Array); //false
        console.log(Object.prototype.toString.call(obj)); //  返回值是字符串 [object,Object]
        console.log(Object.prototype.toString.call(arr)); //  [object,Array]
    </script>
</body>

</html>